package cliente;

import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.Action;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

import cliente.apartamento.CadastraApartamento;
import cliente.conta.CadastraItemConta;
import cliente.conta.EstornarItemConta;
import cliente.conta.VisualizarConta;
import cliente.hospede.CadastrarHospede;
import cliente.hospede.ProcurarHospede;
import cliente.reserva.CadastrarReserva;
import cliente.reserva.ProcurarReserva;
import cliente.servico.InserirServico;
import cliente.servico.ProcurarServicos;
import cliente.userCtl.Usuario;


@SuppressWarnings("serial")
public class MainWindow extends JFrame{
	
	private Usuario usrLogado;

	// Componentes
	private JMenuBar menubar 			= new JMenuBar();
	private JMenu ManterServicos		= new JMenu("Serviços");
	private JMenu ManterReserva			= new JMenu("Reservas");
	private JMenu ManterHospede			= new JMenu("Hóspedes");
	private JMenu ManterApartamentos	= new JMenu("Apartamentos");
	private JMenu ManterContas			= new JMenu("Contas");
	
	// Ações
	// Manter Serviços
	private Action alterarServico 	= new ProcurarServicos();
	private Action inserirServico 	= new InserirServico();
	//private Action apagarServico 	= new ApagarServico();
	
	// Manter Reservas
	private Action cadastrarReserva = new CadastrarReserva();
	private Action procurarReserva	= new ProcurarReserva();
	
	// Manter Hospedes
	private Action cadastrarHospede	= new CadastrarHospede();
	private Action procurarHospede	= new ProcurarHospede();
	
	// Manter Apartamentos
	private Action cadastraApartamento	= new CadastraApartamento();
	
	// Manter Conta
	private Action cadastraItemConta	= new CadastraItemConta();
	private Action visualizarConta		= new VisualizarConta();
	// private Action estornarItemConta	= new EstornarItemConta(Usuario userLogado);
	
	public MainWindow(Usuario usrLogado) {
		super("Hotel Manager");
		this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
		
		Container interno = this.getContentPane();
		
		this.usrLogado = usrLogado;
		
		this.montaMenu();
		this.montaGui(interno);
	}
	
	public void montaMenu(){
		// Menu Serviços
		JMenuItem itemProcurarServicos 	= new JMenuItem(this.alterarServico);
		JMenuItem itemInserirServico 	= new JMenuItem(this.inserirServico);
		//JMenuItem itemApagarServico 	= new JMenuItem(this.apagarServico);
		this.ManterServicos.add(itemProcurarServicos);
		this.ManterServicos.add(itemInserirServico);
		//this.ManterServicos.add(itemApagarServico);
		this.menubar.add(this.ManterServicos);
		
		// Menu Reservas
		JMenuItem itemCadastrarReserva	= new JMenuItem(this.cadastrarReserva);
		JMenuItem itemProcurarReserva	= new JMenuItem(this.procurarReserva);
		this.ManterReserva.add(itemCadastrarReserva);
		this.ManterReserva.add(itemProcurarReserva);
		this.menubar.add(this.ManterReserva);
		
		// Menu Hospedes
		JMenuItem itemCadastraHospede	= new JMenuItem(this.cadastrarHospede);
		JMenuItem itemProcurarHospede	= new JMenuItem(this.procurarHospede);
		this.ManterHospede.add(itemCadastraHospede);
		this.ManterHospede.add(itemProcurarHospede);
		this.menubar.add(this.ManterHospede);
		
		// Menu Apartamentos
		JMenuItem itemCadastraApartamento	= new JMenuItem(this.cadastraApartamento);
		this.ManterApartamentos.add(itemCadastraApartamento);
		this.menubar.add(this.ManterApartamentos);
		
		// Menu Conta
		JMenuItem itemCadastrarItemConta	= new JMenuItem(this.cadastraItemConta);
		JMenuItem itemVisualizarConta		= new JMenuItem(this.visualizarConta);
		this.ManterContas.add(itemCadastrarItemConta);
		this.ManterContas.add(itemVisualizarConta);
		this.menubar.add(this.ManterContas);
		
		
		this.setJMenuBar(this.menubar);
	}
	
	private void montaGui(Container interno){
		GridBagConstraints cons = new GridBagConstraints();
		GridBagLayout layout = new GridBagLayout();
		interno.setLayout(layout);
		cons.insets = new Insets(2,2,2,2); 
	}
}
